The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Users have long been able to view information displayed on a screen and to use input devices such as mice, keyboards, and track pads to modify the information displayed. Many user interfaces have been developed for displaying information, receiving input from the user, and displaying the modified information. For example, a user may use a mouse to double-click a word that is displayed on the screen to select it, use a keyboard to type in another word, and see that the original word has been replaced by the typed-in word. Another simple example is one where a user uses a mouse to drag an image that is displayed at one location on the screen to another location on the screen.
Some user interfaces allow users to quickly change a value, often a numeric value, and to clearly present how the value is being changed. In one approach using a traditional slider as the user interface component, a slider image is displayed on the screen, where a knob on the slider indicates the current numeric value and the slider contains two endpoints that define the range of possible values. The user may use a mouse or track pad to drag the knob along the slider, changing the current numeric value as the knob is dragged back and forth. This knob, however, cannot be dragged beyond the endpoints of the slider. The traditional slider allows the user to quickly and easily change the numeric value and clearly displays the updated value. However, this approach is limited because the two endpoints of the slider define the minimum and maximum bounds of what the value may be. Users who wish to change a value beyond the minimum and maximum bounds defined by a particular traditional slider are not able to do so under this approach.
In another approach described in U.S. patent application Ser. No. 10/826,234 (“User Interface Control for Changing a Parameter”), the traditional slider is replaced with a user interface component that does not impose inherent minimum and maximum bounds. In this approach, the user interface component does not display an image of a slider with a knob, but simply displays an image of the value itself, with no predefined endpoints. As with the traditional slider, the user can change the current value by selecting the value and using a mouse or track pad to make dragging motions. However, rather than dragging a knob across a slider that has endpoints, the dragging motions simply move the cursor across the screen. Because there are no endpoints, a user may continue to make a dragging motion to move the cursor across the screen beyond the display image of the control, thereby continuing to modify the value being displayed. This approach is more flexible than the traditional slider because there are no predefined bounds in the user interface component beyond which the user cannot modify the value. Physically, however, the user may still be limited by how far he can move the cursor across the screen. Once a user has moved the mouse such that the mouse cursor on the display screen has reached an edge of the screen, no further modification in the value can be effected. Under these circumstances, if the user desires further modification to the value, the user deselects the control (e.g. by releasing a mouse button), moves the cursor back to select the control again, and repeats the process. The need to reselect the control and repeat the process is especially pronounced when the value displayed on the screen is close to one of the edges of the screen, where a user has only a short distance to drag a mouse before the mouse cursor is stopped by a screen edge.
Another example of a user interface control is the jog shuttle implemented in Apple Inc.'s Final Cut Pro application. To use the jog shuttle, the user clicks on a wheel-like control and is able to change the value by continuously making a dragging motion across the jog shuttle.
The approaches just described allow a user to modify, via a sliding or dragging motion, a single value that is displayed as a single value. In certain applications, however, a single value may be displayed as a series of value segments. For example, applications for editing time-based media, such as video and audio data, may display time values as a series of value segments that correspond to hours, minutes, seconds, and frames. Significantly, even though the segmented values may be displayed as a series of segments, the segments collectively represent a single underlying value. For such segmented values, the approaches just described do not provide an expedient way to modify the values. Although Apple's Logic application provides a user interface for modifying segmented values, it does not provide for modification of the segmented values without regard to the position of a mouse cursor.